Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bugs in sdf_exporter.py #2678

Open
wants to merge 2 commits into
base: gz-sim9
Choose a base branch
from
Open

Conversation

mahit2609
Copy link

Fix Blender SDF Export Tool for Blender 4.2.3
Overview
This PR fixes compatibility issues with Blender 4.2.3, as the original code was non-functional in newer Blender versions. The changes include API updates and bug fixes to ensure proper functionality.
Key Changes

Updated code to work with Blender 4.2.3's API
Fixed broken light handling and material processing
Updated type checks and property access to match current Blender standards

Notes

Tested working on Blender 4.2.3
Previous version was non-functional on newer Blender releases
Maintains same export format for model.dae, model.sdf, and model.config files

@mahit2609 mahit2609 requested a review from mjcarroll as a code owner November 16, 2024 18:06
@github-actions github-actions bot added 🏛️ ionic Gazebo Ionic 🪵 jetty Gazebo Jetty labels Nov 16, 2024
Copy link
Contributor

@azeey azeey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the contribution. Would you mind signing-off on your commits (see contributing guide.

examples/scripts/blender/sdf_exporter.py Show resolved Hide resolved
Copy link
Contributor

@azeey azeey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks again for the contribution! I started reviewing it, but I quickly realized there are a lot of unrelated changes (e.g. style, removed comments, etc.) that make it harder to review. Could you please revert those changes keeping only the relevant changes that fix the bugs so the PR is as small as possible?

filter_folder=True,
filemode=8,
)
bpy.ops.wm.collada_export(filepath=prefix_path+meshes_folder_prefix+dae_filename,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we keep the path.join here? That is preferred over using + for paths. And since there aren't any other changes, could you revert this to the previous version to reduce the diff as much as possible.

Comment on lines 11 to 17
dae_filename = 'model.dae'
sdf_filename = 'model.sdf'
model_config_filename = 'model.config'
lightmap_filename = 'LightmapBaked.png'
model_name = 'my_model'
meshes_folder_prefix = 'meshes/'

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No need to remove the extra space. Please revert and minimize the diff.


########################################################################################################################
### Exports model.dae of the scene with textures, its corresponding model.sdf file, and a default model.config file ####
########################################################################################################################
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any reason for removing this comment?

#### export sdf xml based off the scene #####
#############################################
sdf = ET.Element("sdf", attrib={"version": "1.8"})
mesh_objects = [o for o in objects if o.type == 'MESH']
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please revert unnecessary changes. This is only changing double quotes to single quotes. The rest of the file uses double quotes and I think it's best to stick with that.

@azeey azeey self-assigned this Jan 7, 2025
@mahit2609 mahit2609 force-pushed the gz-sim9 branch 2 times, most recently from 10801a9 to d7a295a Compare January 25, 2025 14:45
Copy link
Author

@mahit2609 mahit2609 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i have made those changes and tested it on all the 4. versions of the blender can u please go through it i have kept it intact as much as i could thnx for the guidance

Copy link
Contributor

@azeey azeey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the contribution. I only have one small comment.

Comment on lines +103 to +108
linear = ET.SubElement(attenuation, "linear")
linear.text = "1.0"
quadratic = ET.SubElement(attenuation, "quadratic")
quadratic.text = "0.0"
constant = ET.SubElement(attenuation, "constant")
constant.text = "1.0"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we not get these values from the blender light anymore? Why do we need to hardcode them? If not, can you add a comment at the top of the file saying light attenuation is not supported or something to that extent?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🏛️ ionic Gazebo Ionic 🪵 jetty Gazebo Jetty
Projects
Status: In review
Development

Successfully merging this pull request may close these issues.

3 participants